package com.hzz.dto.report;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Size;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("事件督办 DTO")
public class ReportEventSupervisionDto extends BaseDto {
    /**
     * id
     */
    Long id;
    /**
     * 督办对象(0个人,1机构)
     */
    Integer supervisionTarget;
    /**
     * 责任单位id
     */
    Long dutyOrgId;
    /**
     * 责任单位名称
     */
    @Size(max = 55, message = "dutyOrgName最大55字符")
    String dutyOrgName;
    /**
     * 责任人id
     */
    Long dutyUserId;
    /**
     * 责任人名称
     */
    @Size(max = 55, message = "dutyUserName最大55字符")
    String dutyUserName;
    /**
     * 督办单号
     */
    @Size(max = 55, message = "supervisionCode最大55字符")
    String supervisionCode;
    /**
     * 督办类型(0巡河事件,1公众投诉,2重点项目,3常规任务,4紧急任务)
     */
    Integer supervisionType;
    /**
     * 督办标题
     */
    @Size(max = 55, message = "supervisionTitle最大55字符")
    String supervisionTitle;
    /**
     * 督办内容
     */
    @Size(max = 255, message = "supervisionContent最大255字符")
    String supervisionContent;
    /**
     * 督办要求
     */
    @Size(max = 1255, message = "supervisionDemand最大1255字符")
    String supervisionDemand;
    /**
     * 督办发起时间
     */
    Date supervisionDate;
    /**
     * 督办完成期限
     */
    Date dateDeadline;
    /**
     * 督办联系人id
     */
    Long supervisionContactId;
    /**
     * 督办联系人名称
     */
    @Size(max = 55, message = "supervisionContactName最大55字符")
    String supervisionContactName;
    /**
     * 督办联系人电话
     */
    @Size(max = 55, message = "supervisionContactCellphone最大55字符")
    String supervisionContactCellphone;
    /**
     * 事件进度(0上报,1处理,2结案)
     */
    Integer state;
    /**
     * 建立者id
     */
    Long createId;
    /**
     * 创建时间
     */
    Date dateCreated;
    /**
     * 更新时间
     */
    Date dateUpdated;
}
